# 字典的遍历操作，遍历就是能够把一个可迭代对象所包含的元素依次取出来，进行一些操作，整个过程要求不重不漏
# 字典被设计出来的初衷，不是为了实现遍历，而是为了增删改查
# 字典是哈希表，进行增删改查操作，效率都是非常高的
# 而字典的遍历效率就要差一些
# 哈希表这个数据结构能够以常数级的时间复杂度来完成增删改查

# 1.直接使用for循环来遍历字典
a ={
    'id': 1,
    'name': 'zhangsan',
    'score': 100,
}

for key in a:
    print(key, a[key])

# 在C++/Java中哈希表中的键值对存储顺序是无序的
# 但是python中还不一样，python中做了特殊处理，能够保证遍历处理的顺序就是和插入的顺序是一直的
# python中的字典不是一个单纯的哈希表


# 2.keys 获取字典中所有key
a ={
    'id': 1,
    'name': 'zhangsan',
    'score': 100,
}
print(a.keys())  # dict_keys(['id', 'name', 'score'])
# 返回的结果看起来是列表又不完全是，属于自定义类型，但是使用的时候也可以把它当作一个列表来使用

# 3. values 获取字典中所有value
a ={
    'id': 1,
    'name': 'zhangsan',
    'score': 100,
}
print(a.values())  # dict_values([1, 'zhangsan', 100])

# 4. items 获取字典中所有键值对
a ={
    'id': 1,
    'name': 'zhangsan',
    'score': 100,
}
print(a.items())  # dict_items([('id', 1), ('name', 'zhangsan'), ('score', 100)])
# 首先是一个列表一样的结构，里面每个元素又是一个元组，元组里面包含了键和值

# 5 多元赋值遍历打印字典
for key, value in a.items():
    print(key, value)





